﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using EntitiesLayer;
using DAL.Repositories;

namespace DAL
{
    public class UnitOfWork
    {
        private EjercicioRepository _ejercicioRepository;
        private MusculoRepository _musculoRepository;
        private RolRepository _rolRepository;
        private PagoRepository _pagoRepository;
        private PreciosRepository _precioRepository;

        /// MARIA JOSE  

        private IRepository<Horario> horarioRepository;
        public IRepository<Horario> HorarioRepository
        {
            get
            {
                if (horarioRepository == null)
                {
                    horarioRepository = new HorarioRepository();
                }
                return horarioRepository;
            }
        }

        /// MARIA JOSE
       
        private IRepository<Gimnasio> gimnasioRepository;
        public IRepository<Gimnasio> GimnasioRepository
        {
            get
            {
                if (gimnasioRepository == null)
                {
                    gimnasioRepository = new GimnasioRepository();
                }
                return gimnasioRepository;
            }
        }

        /// MARIA JOSE

        private IRepository<Usuario> usuarioRepository;
        public IRepository<Usuario> UsuarioRepository
        {
            get
            {
                if (usuarioRepository == null)
                {
                    usuarioRepository = new UsuarioRepository();
                }
                return usuarioRepository;
            }
        }

        /// MARIA JOSE

        private IRepository<ContactoReferencia> contactoReferenciaRepository;
        public IRepository<ContactoReferencia> ContactoReferenciaRepository
        {
            get
            {
                if (contactoReferenciaRepository == null)
                {
                    contactoReferenciaRepository = new ContactoReferenciaRepository();
                }
                return contactoReferenciaRepository;
            }
        }

        public EjercicioRepository EjercicioRepository
        {
            get
            {
                if (this._ejercicioRepository == null)
                {
                    this._ejercicioRepository = new EjercicioRepository();
                }
                return _ejercicioRepository;
            }
        }

        public MusculoRepository MusculoRepository
        {
            get
            {
                if (this._musculoRepository == null)
                {
                    this._musculoRepository = new MusculoRepository();
                }
                return _musculoRepository;
            }
        }

        public RolRepository RolRepository
        {
            get
            {
                if (this._rolRepository == null)
                {
                    this._rolRepository = new RolRepository();
                }
                return _rolRepository;
            }
        }

        public PagoRepository PagoRepository
        {
            get
            {
                if (this._pagoRepository == null)
                {
                    this._pagoRepository = new PagoRepository();
                }
                return _pagoRepository;
            }
        }


        public PreciosRepository PreciosRepository
        {
            get
            {
                if (this._precioRepository == null)
                {
                    this._precioRepository = new PreciosRepository();
                }
                return _precioRepository;
            }
        }

        private MaquinaRepository _maquinaRepository;
        public MaquinaRepository MaquinaRepository
        {
            get
            {
                if (this._maquinaRepository == null)
                {
                    this._maquinaRepository = new MaquinaRepository();
                }
                return _maquinaRepository;
            }
        }
    }
}
